The present invention relates in general to data processing systems, and in particular, to a method and system for handling locking protocol disparities between an application program and an operation system on which the application program is installed.
There are many operating systems, for example OS/2, WINDOWS, NT, UNIX and AIX. If an application was written to execute on one operating system, all processes and operations that the application program can execute may not be compatible with the operating system to which the application program is ported. In the past, if it was desired to have an application program ported to operating systems on which it was not fully compatible, then portions of the software had to be rewritten specifically for each different operating system. Rewriting existing software code is time consuming and a rewrite of a debugged and operational application program may cause errors. File management is one of those processes that may differ between operating systems. Operating systems have routines that are used to lock and unlock files. AIX, for example has file locking and unlocking routines that support operations that are not compatible with NT and OS/2. An exemplary application program, written on an NT or OS/2 platform and subsequently ported to AIX, may cause file corruption and serialization errors if the differences in file locking and unlocking are not handled correctly.
File corruption may occur when multiple applications try to access and write to files that are not properly locked. Non-serial operations errors may occur when a serial operation on a file is allowed without proper locking, for example, one application may access data, modify it, and then not return its result before another application accesses the same data. In this case, after both applications return their results, the data stored in the file is now in error. In this example, a serial operation cannot be performed on the file without proper locking in effect.
There is therefore a need for a method for handling the problem of incompatibilities of an application program when it is ported to run on different operating systems without rewriting the application program.
The present invention discloses the use of a file request emulator that may be integrated within an application program that may be ported to various different Operating Systems (OS).
Operating Systems have processes commonly executed by a variety of different Application programs, however, these processes may contain features all of which are not compatible within the Operating Systems. File locking is one of those processes that many Application programs use, however, one operating system may allow more complex file locking than another. If an Application program was written on one OS platform and then ported to another, the Application program may be able to issue file locking requests that may result in corrupted files. The present invention uses a file request emulator and in particular a file locking emulator between the Application program and an OS. The file locking emulator determines the compatibility of file locking requests between a given ported application and an operating system. Only valid requests are passed to the OS, invalid or incompatible requests result in returned error statements which may also contain recovery options available to a user of the application program. In this manner, only the file request emulator has to have code changes for different Operating Systems and the tested code of the Application program can remain unchanged.
The foregoing has outlined rather broadly the features and technical advantages of the present invention in order that the detailed description of the invention that follows may be better understood. Additional features and advantages of the invention will be described hereinafter which form the subject of the claims of the invention.